package com.rencheqi.web.driver.service.impl;

import com.rencheqi.common.utils.DateUtils;
import com.rencheqi.common.utils.uuid.IdUtils;
import com.rencheqi.web.driver.domain.DriverInfo;
import com.rencheqi.web.driver.mapper.DriverInfoMapper;
import com.rencheqi.web.driver.service.DriverInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 驾驶人员信息 服务层实现
 *
 * @author xiexin
 * @version DriverInfoServiceImpl.java, v0.1 2025年 05月 19日 11:26 xiexin Exp $
 */
@Service
public class DriverInfoServiceImpl implements DriverInfoService {

    @Resource
    private DriverInfoMapper driverInfoMapper;

    /**
     * 查询驾驶人员基本信息
     *
     * @param driverInfo 驾驶人员基本信息
     * @return 驾驶人员基本信息集合
     */
    @Override
    public List<DriverInfo> selectDriverInfoList(DriverInfo driverInfo) {
        return driverInfoMapper.selectDriverInfoList(driverInfo);
    }

    /**
     * 根据ID查询信息
     *
     * @param id id
     * @return 驾驶人员基本信息
     */
    @Override
    public DriverInfo selectDriverInfoById(String id) {
        return driverInfoMapper.selectDriverInfoById(id);
    }

    /**
     * 新增驾驶人员基本信息
     *
     * @param driverInfo 驾驶人员基本信息
     * @return 结果
     */
    @Override
    public int insertDriverInfo(DriverInfo driverInfo) {
        driverInfo.setId(IdUtils.fastSimpleUUID());
        driverInfo.setCreateTime(DateUtils.getNowDate());
        //获取当前登录用户，暂时注释
        //driverInfo.setCreateBy(SecurityUtils.getUsername());
        driverInfo.setCreateBy("admin");
        driverInfo.setDelFlag("0");
        return driverInfoMapper.insertDriverInfo(driverInfo);
    }

    /**
     * 修改驾驶人员基本信息
     *
     * @param driverInfo 驾驶人员基本信息
     * @return 结果
     */
    @Override
    public int updateDriverInfo(DriverInfo driverInfo) {
        if (StringUtils.isEmpty(driverInfo.getId())) {
            throw new RuntimeException("id不能为空");
        }
        driverInfo.setUpdateTime(DateUtils.getNowDate());
        driverInfo.setUpdateBy("admin");
        driverInfo.setDelFlag("0");
        return driverInfoMapper.updateDriverInfo(driverInfo);
    }

    /**
     * 删除驾驶人员信息
     *
     * @param id id
     * @return 结果
     */
    @Override
    public int deleteDriverInfoById(String id) {
        return driverInfoMapper.deleteDriverInfoById(id);
    }
}
